package leetcode100;

import java.util.Scanner;

/**
 * @author shkstart
 * 将一句话的单词进行倒置，标点不倒置。比如 I like beijing.
 * 经过函数后变为：beijing. like I
 * @create 2022-11-21-17:45
 */
public class Meme3 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        char [] chars =str.toCharArray();

        int length = chars.length;
        reverse(chars,0,length-1);
        int i = 0 ;
        while(i< length){
            int j = i;
            while(j<length && chars[j]!=' '){
//                此时还没有遇到空格，一直向后移动
                j++;
            }
         //此时遇到两种情况
         //一，遇到了空格
         if(j<length){
             reverse(chars,i,j-1);
//           此时的j是空格的索引下标
//           为了能进入循环找到下一个空格
//             我们让i = j+1 跳过这个空格，从下一个字母开始遍历
             i=j+1;

         }else{
//         情况二：走到了末尾，j=length
//          我们可以跳出外层循环，所以让i = j;
             reverse(chars,i,j-1);
             i=j;

         }



        }
        String str1 = new String (chars);
        System.out.println(str1);
    }
    public static void reverse(char[] arr, int start, int end){
        while(start<end){
            char temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;
            start++;
            end--;
        }

    }
}
